package hxy.bytecode.queue;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Consumer {
    
    private int id;
 
    private BlockingQueue<String> queue;
    
    private static ScheduledExecutorService executors = Executors.newScheduledThreadPool(1);
    
    public Consumer() {
    }
    
    public Consumer(BlockingQueue<String> queue, int id){
        this.id = id;
        this.queue = queue;
        System.out.println("创建了消费者：" + id +"号");
        consumer();
    }
    public void consumer(){
        
            executors.scheduleWithFixedDelay(new Runnable() {
                @Override
                public void run() {
                    System.out.println("消费者手里的线程池核武器收到了一个命令，此时队列中的任务数"+queue.size()+"个");
                    try {
                        String message = queue.take();
                        System.out.println("消费者： " + id + "号，开始消费了");
                        Thread.sleep(3000);
                        System.out.println("消费者： " + id + "消费结束了，"+message);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }                   
                }
            }, 0, 5, TimeUnit.SECONDS);
            
    }
}